#ifndef _UICONTROLIMPL_H_
#define _UICONTROLIMPL_H_

#include "stdafx.h"

class CUiControlImpl : public IUIControl
{
public:
    CUiControlImpl(void);
    virtual ~CUiControlImpl(void);
    // IUiControl
    std_method_(LPCSTR, GetClass)();
    std_method_(LPCSTR, GetName)();
    std_method(SetName)(LPCSTR name);
    std_method_(LPCSTR, GetText)();
    std_method(SetText)(LPCSTR name);
    std_method_(LPCSTR, GetFlag)();
    std_method_(HWND, GetNative)();
    std_method(SetClientPos)(RECT rc);
    std_method_(RECT, GetClientPos)();
    std_method_(UIType, GetControlAttribute)();
    std_method_(IUIControl*, FindControl)(LPSTRING key);
    std_method_(IUIControl*, FindIndexControl)(UINT index);
    std_method_(UINT, GetControlCount)();
    std_method_(int, IsVisible)();
    std_method(SetVisible)(int visible);
    std_method_(int, IsEnabled)();
    std_method(SetEnabled)(int visible);
    std_method_(int, IsFocused)();
    std_method(SetFocus)();
    std_method(Init)();
    std_method(Event)(const NotifyEvent* event);
    std_method_(int, GetWidth)();
    std_method_(int, GetHeight)();
    std_method_(int, GetX)();
    std_method_(int, GetY)();
    std_method_(SIZE, GetFixed)();
    std_method(SetFixed)(SIZE rc);
    std_method_(RECT, GetPos)();
    std_method(SetPos)(RECT rc);
    std_method_(RECT, GetRelativePos)();
    std_method(SetRelativePos)(RECT rc);
    std_method_(UINT, GetBorderStyle)();
    std_method(SetBorderStyle)(UINT nStyle);
    std_method_(RECT, GetPadding)();
    std_method(SetPadding)(RECT rc);
    std_method_(LPSTRING, GetBkImage)();
    std_method(SetBkImage)(LPSTRING name);
    std_method_(DWORD, GetBkColor)();
    std_method(SetBkColor)(DWORD dwBackColor);
    std_method_(LPSTRING, GetToolTip)();
    std_method(SetToolTip)(LPSTRING pstrText);
    std_method_(int, GetToolTipWidth)();
    std_method(SetToolTipWidth)(int nWidth);
    std_method_(DWORD, GetBorderColor)();
    std_method(SetBorderColor)(DWORD dwBorderColor);
    std_method_(DWORD, GetFocusBorderColor)();
    std_method(SetFocusBorderColor)(DWORD dwBorderColor);
    std_method_(SIZE, GetBorderRound)();
    std_method(SetBorderRound)(SIZE cxyRound);
    std_method_(SIZE, GetBorderSize)();
    std_method(SetBorderSize)(SIZE rc);
};

#endif
